package Veterinaria.negocio;

import java.util.Collection;

import Veterinaria.dao.FacturaDAO;
import Veterinaria.excepcion.DAOExcepcion;
import Veterinaria.modelo.Articulo;
import Veterinaria.modelo.Cita;
import Veterinaria.modelo.DetalleFactura;
import Veterinaria.modelo.Factura;
import Veterinaria.modelo.FacturaDetalleTMP;

public class GestionFacturaDetalle {
	public DetalleFactura insertarfacturadetalle(String idfactura,
			Integer secuencial, String idarticulo, Integer cantidad,
			Double Total) throws DAOExcepcion {

		FacturaDAO dao = new FacturaDAO();
		GestionArticulo art = new GestionArticulo();
		GestionFactura fact = new GestionFactura();

		DetalleFactura vo = new DetalleFactura();
		Factura fa = new Factura();
		Articulo due = new Articulo();

		due = art.obtener(idarticulo);
		fa = fact.obtenerfactura(idfactura);

		vo.setOfacturas(fa);
		vo.setSecuencial(secuencial);
		vo.setOarticulos(due);
		vo.setCantidad(cantidad);
		vo.setTotal(Total);
		return dao.insertarfacturadetalle(vo);
	}

	public FacturaDetalleTMP insertarfacturadetalletmp(String idfactura,
			 String idarticulo, String descripcion, Integer cantidad,
			Double Total) throws DAOExcepcion {

		FacturaDAO dao = new FacturaDAO();

		FacturaDetalleTMP vo = new FacturaDetalleTMP();
		
		vo.setIdfactura(idfactura);
		vo.setidArticulo(idarticulo);
		vo.setDescripcion(descripcion);
		vo.setCantidad(cantidad);
		vo.setTotal(Total);
		return dao.insertarfacturadetalleTemporal(vo);
	}	
	
	public Collection<FacturaDetalleTMP> listartemporal() throws DAOExcepcion {
		FacturaDAO dao = new FacturaDAO();
		return dao.listartemporal();
	}
	
	public Collection<DetalleFactura> obtenerDetalleFactura(String idfactura) throws DAOExcepcion {
		FacturaDAO dao = new FacturaDAO();
		return dao.obtenerDetalleFactura(idfactura);
	}
	
		
	public FacturaDetalleTMP eliminarfacturadetalleTemporal(String Item) throws DAOExcepcion {

		FacturaDAO dao = new FacturaDAO();

		FacturaDetalleTMP vo = new FacturaDetalleTMP();
		vo.setidArticulo(Item);
		return dao.eliminarfacturadetalleTemporal(vo);
	}		
	
	public FacturaDetalleTMP EliminarDatosTempora() throws DAOExcepcion {
		FacturaDAO dao = new FacturaDAO();
		return dao.EliminarDatosTemporal();
	}		
	
	public class GestionFacturaDetalleCita {
		public DetalleFactura insertarfacturadetalle(String idfactura,
				Integer secuencial, String idarticulo,String Cita, Integer cantidad,
				Double Total) throws DAOExcepcion {

			FacturaDAO dao = new FacturaDAO();
			GestionArticulo art = new GestionArticulo();
			GestionFactura fact = new GestionFactura();
			GestionCita cita = new GestionCita();
			
			DetalleFactura vo = new DetalleFactura();
			Factura fa = new Factura();
			Articulo due = new Articulo();
			Cita cit = new Cita();

			due = art.obtener(idarticulo);
			fa = fact.obtenerfactura(idfactura);
			cit = cita.obtener(Cita);
			
			
			vo.setOfacturas(fa);
			vo.setSecuencial(secuencial);
			vo.setOarticulos(due);
			vo.setIdcita(cit.getCod_cita());
			vo.setCantidad(cantidad);
			vo.setTotal(Total);
			return dao.insertarfacturadetalle(vo);
		}
	}
	
}
